home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr57 / nwnt.zip / NWNT.EXE / OEMSETUP.INF < prev    next >
INI File  |  1993-04-23  |  53KB  |  1,741 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMNPRNW.INF
  4. ;
  5. ;       Novell Netware base installation INF
  6. ;
  7. ;***********************************************************************
  8.  
  9. ;-----------------------------------------------------------------------
  10. ; OPTION TYPE
  11. ; -----------
  12. ; This identifies the Option type we are dealing with.  The different
  13. ; possible types are:
  14. ;
  15. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  16. ;
  17. ;  Types specific to networking:
  18. ;
  19. ; NetAdapter,        a netcard / adapter combination or just a netcard
  20. ; NetDriver,         just a netcard driver
  21. ; NetTransport,      a complete NDIS-compliant TDI transport stack
  22. ; NetService,        an NT networking service
  23. ; NetWork,           a complete network ensemble.
  24. ; NetProvider        a complete network which supports NT MPR protocol
  25. ;-----------------------------------------------------------------------
  26.  
  27. [Identification]
  28.     OptionType = NetProvider
  29.  
  30. ;-----------------------------------------------------------------------
  31. ; OPTION LIST
  32. ; -----------
  33. ; This section lists the OEM Option key names.  These keys are locale
  34. ; independent and used to represent the option in a locale independent
  35. ; manner.
  36. ;
  37. ;-----------------------------------------------------------------------
  38.  
  39. [Options]
  40.     NETWARE
  41.  
  42. ;-----------------------------------------------------------------------
  43. ; LANGUAGES SUPPORTED
  44. ; -------------------
  45. ;
  46. ; The languages supported by the OEM INF, For every language supported
  47. ; we need to have a separate text section for every displayable text
  48. ; section.
  49. ;
  50. ;-----------------------------------------------------------------------
  51.  
  52. [LanguagesSupported]
  53.     ENG
  54.  
  55. ;-----------------------------------------------------------------------
  56. ; OPTION TEXT SECTION
  57. ; -------------------
  58. ; These are text strings used to identify the option to the user.  There
  59. ; are separate sections for each language supported.  The format of the
  60. ; section name is "OptionsText" concatenated with the Language represented
  61. ; by the section.
  62. ;
  63. ;-----------------------------------------------------------------------
  64.  
  65. [OptionsTextENG]
  66.     NETWARE     = "NetWare Services for Windows NT"
  67.  
  68. ;***********************************************************************
  69. ; Language-Dependent Dialog Constants
  70. ;***********************************************************************
  71. [FileConstantsENG]
  72. ;
  73. ;  Variables to support thermometer gauge and error dialogs
  74. ;
  75. ProCaption   = "Windows NT Setup"
  76. ProCancel    = "Cancel"
  77. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  78.                "Are you sure you want to cancel copying files?"
  79.  
  80. ProCancelCap = "Network Setup Message"
  81. ProText1     = "Copying:"
  82. ProText2     = "To:"
  83.  
  84.  
  85. ;
  86. ; Product Info
  87. ;
  88. FunctionTitle   = "NetWare Services Setup"
  89.  
  90. ;
  91. ; Used by GetInfFileNameFromRegistry
  92. ;
  93. [InitBaseVars]
  94.  
  95. KeyNull            = ""
  96. MAXIMUM_ALLOWED      = 33554432
  97. KeyInfo            = {}
  98. RegistryErrorIndex = NO_ERROR
  99. NoTitle            = 0
  100.  
  101. CurrentControlSet  = "SYSTEM\CurrentControlSet"
  102. ServicesBaseName   = $(CurrentControlSet)"\Services"
  103. NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
  104.  
  105. ;
  106. ;
  107. ;
  108. [DialogConstantsENG]
  109. ;
  110. ; Common button names, etc.
  111. ;
  112. Help        = "&Help"
  113. Exit        = "Cancel"
  114. OK          = "OK"
  115. HelpContext = ""
  116. Continue    = "Continue"
  117. Cancel      = "Cancel"
  118.  
  119. ;-----------------------------------------------
  120. ; Input DIALOGS
  121. ;-----------------------------------------------
  122. [FileDependentDlgENG]
  123. ;
  124. ; No UI yet for NetWare Services
  125. ;
  126. ;***********************************************************************
  127. ; CONSTANTS FOR USING DIALOGS
  128. ;***********************************************************************
  129.  
  130. [FileConstants]
  131. ;
  132. ;  File names, etc.
  133. ;
  134. UtilityInf      = "UTILITY.INF"
  135. subroutineinf   = "SUBROUTN.INF"
  136. SoftwareType    = "service"
  137. Exit_Code       = 0
  138. ;ShellCode      = 0
  139.  
  140. ; Product Info
  141. ;
  142. Manufacturer    = "Novell"
  143. ProductMajorVersion     = "0"
  144. ProductMinorVersion     = "9"
  145. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  146. SoftwareBinHome = "%SystemRoot%\System32\Netware\"
  147. DriverBinHome   = "%SystemRoot%\System32\Drivers\"
  148.  
  149. ;
  150. ; Services
  151. ;
  152.  
  153. ; MUP: if not already installed
  154.  
  155. ProductMUPControl      = service
  156. ProductMUPName         = "Mup"
  157. ProductMUPDisplayName  = "Mup"
  158. ProductMUPTitle        = "Mup"
  159. ProductMUPImagePath    = "\SystemRoot\System32\drivers\mup.sys"
  160. ProductMUPSvcType      = "transport"
  161. ProductMUPGroup        = "Network"
  162. ProductMUPDependList   = {}
  163. ProductMUPEventFile    = ""
  164.  
  165. ; TDI: if not already installed
  166.  
  167. ProductTDIControl      = service
  168. ProductTDIName         = "Tdi"
  169. ProductTDIDisplayName  = "Tdi"
  170. ProductTDITitle        = "Tdi"
  171. ProductTDIImagePath    = "\SystemRoot\System32\drivers\TDI.sys"
  172. ProductTDISvcType      = "kernelauto"
  173. ProductTDIGroup        = "Network"
  174. ProductTDIDependList   = {}
  175. ProductTDIEventFile    = ""
  176.  
  177. ; NwFs: NetWare Workstation
  178.  
  179. ProductNWFSControl     = component
  180. ProductNWFSName        = "NetWareWorkstation"
  181. ProductNWFSDisplayName = "NetWare Workstation"
  182. ProductNWFSTitle       = "NetWare Workstation"
  183. ProductNWFSImagePath   = $(SoftwareBinHome)nwfs.sys
  184. ProductNWFSDescription = "NetWare Workstation"
  185. ProductNWFSSvcType     = "systemauto"
  186. ProductNWFSSoftType    = "service"
  187. ProductNWFSGroup       = ""
  188. ProductNWFSDependList  = {"+TDI","Mup"}
  189. ProductNWFSEventFile   = ""
  190.  
  191.  
  192. NetRuleNWFSSoftwareType     = "nwfs nwFileSys"
  193. NetRuleNWFSSoftwareUse      = "service yes yes"
  194. NetRuleNWFSSoftwareBindForm = """Nwfs"" yes yes container"
  195. NetRuleNWFSSoftwareClass    = {"nwFileSys basic"}
  196. NetRuleNWFSSoftwareBindable = {"nwFileSys nwTransport non non 100"}
  197.  
  198. ; IpxSpxII: Transport
  199.  
  200. ProductIPXSPXIIControl     = component
  201. ProductIPXSPXIIName        = "IpxSpxII"
  202. ProductIPXSPXIIDisplayName = "NetWare IPX/SPX II Transport"
  203. ProductIPXSPXIITitle       = "NetWare IPX/SPX II Transport"
  204. ProductIPXSPXIIDescription = "NetWare IPX/SPX II Network Transport"
  205. ProductIPXSPXIIImagePath   = $(SoftwareBinHome)ipxspxii.sys
  206. ProductIPXSPXIISvcType     = "systemauto"
  207. ProductIPXSPXIISoftType    = "transport"
  208. ProductIPXSPXIIGroup       = "TDI"
  209. ProductIPXSPXIIDependList  = {"+ODI Drivers"}
  210. ProductIPXSPXIIEventFile   = ""
  211.  
  212.  
  213. NetRuleIPXSPXIISoftwareType     = "ipxspxii nwTransport"
  214. NetRuleIPXSPXIISoftwareUse      = "transport yes yes"
  215. NetRuleIPXSPXIISoftwareBindForm = """IpxSpxII"" yes yes simple"
  216. NetRuleIPXSPXIISoftwareClass    = {"nwTransport basic"}
  217. NetRuleIPXSPXIISoftwareBindable = {"nwTransport nwOdiLoader non non 100"}
  218.  
  219. ; OdiLoad
  220.  
  221. ProductODILOADControl     = component
  222. ProductODILOADName        = "OdiLoad"
  223. ProductODILOADDisplayName = "NetWare ODI MAC Driver Loader"
  224. ProductODILOADTitle       = "NetWare ODI MAC Driver Loader"
  225. ProductODILOADDescription = "NetWare ODI MAC Driver Controller"
  226. ProductODILOADImagePath   = $(SoftwareBinHome)odiload.sys
  227. ProductODILOADSvcType     = "kernelauto"
  228. ProductODILOADSoftType    = "driver"
  229. ProductODILOADGroup       = "ODI Drivers"
  230. ProductODILOADDependList  = {"+ODI"}
  231. ProductODILOADEventFile   = ""
  232.  
  233.  
  234. NetRuleODILOADSoftwareType     = "odiLoad nwOdiLoader"
  235. NetRuleODILOADSoftwareUse      = "driver yes yes"
  236. NetRuleODILOADSoftwareBindForm = """Odiload"" yes yes simple"
  237. NetRuleODILOADSoftwareClass    = {"nwOdiLoader basic","nwAdapter basic"}
  238. NetRuleODILOADSoftwareBindable = {"nwOdiLoader nwAdapter non exclusive 100"}
  239.  
  240. ; Lsl
  241.  
  242. ProductLSLControl     = service
  243. ProductLSLName        = "LSL"
  244. ProductLSLDisplayName = "NetWare LSL"
  245. ProductLSLTitle       = "NetWare LSL"
  246. ProductLSLImagePath   = $(SoftwareBinHome)lsl.sys
  247. ProductLSLSvcType     = "kernelauto"
  248. ProductLSLGroup       = "ODI"
  249. ProductLSLDependList  = {"+NetWare Services"}
  250. ProductLSLEventFile   = ""
  251.  
  252. ; Resource Manager
  253.  
  254. ProductRESMGRControl     = service
  255. ProductRESMGRName        = "ResMgr"
  256. ProductRESMGRDisplayName = "NetWare Resource Manager"
  257. ProductRESMGRTitle       = "NetWare Resource Manager"
  258. ProductRESMGRImagePath   = $(SoftwareBinHome)resmgr.sys
  259. ProductRESMGRSvcType     = "kernelauto"
  260. ProductRESMGRGroup       = "NetWare Services"
  261. ProductRESMGRDependList  = {}
  262. ProductRESMGREventFile   = "%SystemRoot%\System32\netware\ResMgr.sys"
  263.  
  264. ; Provider
  265.  
  266. ProductProviderName      = "NetWare Services"
  267. ProductProviderImagePath = "%SystemRoot%\System32\netware.dll"
  268. ProductProviderDevice    = "\Device\NetWareWorkstation"
  269. ProductProviderClass     = 3
  270.  
  271. ; Registry key names
  272.  
  273. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion"
  274. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductNWFSName)"\Parameters"
  275.  
  276. ServiceNameList = ^(ServiceNames, 1)
  277. ComponentNameList = ^(ComponentNames, 1)
  278. ServiceAbandonNameList = ^(ServiceAbandonNames, 1)
  279. ExtendedFunctionList = ^(ExtendedFunctionNames,1)
  280. PreAlphaList = ^(PreAlphaNames, 1)
  281.  
  282.  
  283. [ServiceNames]
  284. SVC_1 = "NWFS"
  285. SVC_2 = "IPXSPXII"
  286. SVC_3 = "LSL"
  287. SVC_4 = "RESMGR"
  288. SVC_5 = "ODILOAD"
  289. SVC_6 = "MUP"
  290. SVC_7 = "TDI"
  291.  
  292. [ComponentNames]
  293. SVC_1 = "NWFS"
  294. SVC_2 = "IPXSPXII"
  295. SVC_3 = "ODILOAD"
  296.  
  297. [ServiceAbandonNames]
  298. SVC_1 = "LSL"
  299. SVC_2 = "RESMGR"
  300.  
  301. [ExtendedFunctionNames]
  302. EXFN_1 = "AuthenticationPackage"
  303. EXFN_2 = "NetworkProvider"
  304. EXFN_3 = "ServiceGroupOrder"
  305. EXFN_4 = "NetwarePrintServices"
  306.  
  307. [PreAlphaNames]
  308. PREAL_1 = "Nwfs"
  309. PREAL_2 = "Ipx"
  310. PREAL_3 = "LSL"
  311. PREAL_4 = "OdiLoad"
  312. PREAL_5 = "Resmgr"
  313.  
  314. [GeneralConstants]
  315. ;
  316. ;  Program flow control variables.
  317. ;
  318. from      = ""
  319. to        = ""
  320. ;
  321. ;  Return codes; Exit_Code is set to one of these
  322. ;
  323. ExitCodeOk     = 0
  324. ExitCodeCancel = 1
  325. ExitCodeFatal  = 2
  326.  
  327. KeyNull         = ""
  328. MAXIMUM_ALLOWED   = 33554432
  329. RegistryErrorIndex = NO_ERROR
  330. KeyProduct      = ""
  331. KeyParameters   = ""
  332.  
  333. TRUE            = 1
  334. FALSE           = 0
  335. NoTitle            = 0
  336.  
  337. ExitState   = "Active"
  338. OldVersionExisted = $(FALSE)
  339.  
  340. [ExtendedConstants]
  341.  
  342. SvcList = {"NetWare Services","ODI","ODI Drivers"}
  343. PkgName = "nwv1_0"
  344. ProviderName = "NetWareWorkstation"
  345. NetwarePrintProviderName = "NetWare Print Services"
  346. PrintProvider = "System\CurrentControlSet\Control\Print\Providers"
  347.  
  348. [IpxSpxIIConstants]
  349.  
  350. FrameTypeName   = "FrameType"
  351. FrameType       = "ETHERNET_802.3"
  352. CardTypeName    = "CardName"
  353. CardName        = "NE2000"
  354. CardInstance    = "CardInstance"
  355. CardInstanceNum = "1"
  356. BindValueName   = "bindings"
  357.  
  358. [date]
  359.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  360.     ; Minute, Second }
  361.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  362.  
  363. [DetectSystemMemory]
  364.     SystemMemory    = "" ? $(!LIBHANDLE) GetMemorySize
  365.  
  366. ;---------------------------------------------------------------------------
  367. ; 1. Identify
  368. ;
  369. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  370. ;                as we are choosing currently.
  371. ;
  372. ; INPUT:         None
  373. ;
  374. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  375. ;                $($R1): Option Type (COMPUTER ...)
  376. ;                $($R2): Diskette description
  377. ;---------------------------------------------------------------------------
  378.  
  379. [Identify]
  380.     ;
  381.     ;
  382.     read-syms Identification
  383.  
  384.     set Status     = STATUS_SUCCESSFUL
  385.     set Identifier = $(OptionType)
  386.     set Media      = #("Source Media Descriptions", 1, 1)
  387.  
  388.     Return $(Status) $(Identifier) $(Media)
  389.  
  390. ;------------------------------------------------------------------------
  391. ; 2. ReturnOptions:
  392. ;
  393. ; DESCRIPTION:   To return the option list supported by this INF and the
  394. ;                localised text list representing the options.
  395. ;
  396. ;
  397. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  398. ;
  399. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  400. ;                                STATUS_NOLANGUAGE
  401. ;                                STATUS_FAILED
  402. ;
  403. ;                $($R1): Option List
  404. ;                $($R2): Option Text List
  405. ;------------------------------------------------------------------------
  406. [ReturnOptions]
  407.     ;
  408.     ;
  409.     set Status        = STATUS_FAILED
  410.     set OptionList     = {}
  411.     set OptionTextList = {}
  412.  
  413.     ;
  414.     ; Check if the language requested is supported
  415.     ;
  416.     set LanguageList = ^(LanguagesSupported, 1)
  417.     Ifcontains(i) $($0) in $(LanguageList)
  418.         goto returnoptions
  419.     else
  420.         set Status = STATUS_NOLANGUAGE
  421.         goto finish_ReturnOptions
  422.     endif
  423.  
  424.     ;
  425.     ; form a list of all the options and another of the text representing
  426.     ;
  427.  
  428. returnoptions = +
  429.     set OptionList     = ^(Options, 1)
  430.     set OptionTextList = ^(OptionsText$($0), 1)
  431.     set Status         = STATUS_SUCCESSFUL
  432.  
  433. finish_ReturnOptions = +
  434.     Return $(Status) $(OptionList) $(OptionTextList)
  435.  
  436. ;----------InstallOption-------------------------------------------------
  437. ;
  438. ; InstallOption:
  439. ;
  440. ;      This section is shelled to by main installation processing
  441. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  442. ;
  443. ;
  444. ; FUNCTION:  To copy files representing Options
  445. ;            To configure the installed option
  446. ;            To update the registry for the installed option
  447. ;
  448. ; INPUT:     $($0):  Language to use
  449. ;            $($1):  OptionID to install
  450. ;            $($2):  SourceDirectory
  451. ;            $($3):  AddCopy  (YES | NO)
  452. ;            $($4):  DoCopy   (YES | NO)
  453. ;            $($5):  DoConfig (YES | NO)
  454. ;
  455. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  456. ;                            STATUS_NOLANGUAGE |
  457. ;                            STATUS_USERCANCEL |
  458. ;                            STATUS_FAILED
  459. ;
  460. ;------------------------------------------------------------------------
  461. [InstallOption]
  462.     ;
  463.     ; extract parameters
  464.     ;
  465.     set Option   = $($1)
  466.     set SrcDir   = $($2)
  467.     set AddCopy  = $($3)
  468.     set DoCopy   = $($4)
  469.     set DoConfig = $($5)
  470.  
  471.     ;
  472.     ;  For now,
  473.     ;
  474.  
  475.     ;
  476.     ; Check if the language requested is supported
  477.     ;
  478.     set LanguageList = ^(LanguagesSupported, 1)
  479.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  480.         Return STATUS_NOLANGUAGE
  481.     endif
  482.  
  483.     StartWait
  484.  
  485.     ; define all the constants
  486.  
  487.     set-subst LF = "\n"
  488.  
  489.     read-syms GeneralConstants
  490.     read-syms FileConstants
  491.  
  492.     read-syms DialogConstants$(!STF_LANGUAGE)
  493.     ifstr(i) $(!NTN_Origination) == "NCPA"
  494.         set Continue = "OK"
  495.     endif
  496.     read-syms FileConstants$(!STF_LANGUAGE)
  497.  
  498.     detect date
  499.  
  500.     set-title  $(FunctionTitle)
  501.  
  502.     set to   = Begin
  503.     set from = Begin
  504. ;
  505. ;  Assume all is well.
  506. ;
  507.     set CommonStatus = STATUS_SUCCESSFUL
  508.  
  509.     EndWait
  510.  
  511. ;
  512. ;   Set up the operation-mode-based variables and gaily welcome
  513. ;   the user.  If the "install mode" variable is improperly set,
  514. ;   assume this is a new installation.
  515. ;
  516.  
  517. Begin = +
  518.     Debug-Output "OEMNPRNW.INF: Begin."
  519.  
  520.     Set OEM_ABANDON_SERVICES = {}
  521.     Set OEM_ABANDON_COMPONENTS = {}
  522.  
  523.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  524.         Set OEM_ABANDON_SERVICES = $(ServiceAbandonNameList)
  525.         Set OEM_ABANDON_COMPONENTS = $(ComponentNameList)
  526.  
  527.         set StartLabel = removenetware
  528.  
  529.     else-Ifstr(i) $(!NTN_InstallMode) == update
  530.         set StartLabel = upgradenetware
  531.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  532.         set StartLabel = bindnetware
  533.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  534.         Set StartLabel = configurenetware
  535.     else
  536.         set StartLabel = installnetware
  537.         ;
  538.         ;  Turn on all the options.
  539.         ;
  540.         ForListDo $(ServiceNameList)
  541.             Set Do$($) = TRUE
  542.         EndForListDo
  543.     endif
  544.  
  545.     set from = $(fatal)
  546.     set to = $(fatal)
  547.     goto $(StartLabel)
  548.  
  549. ;-----------------------------------------------
  550. ; Installation Section
  551. ;-----------------------------------------------
  552.  
  553. installnetware = +
  554.     Debug-Output "OEMNPRNW.INF: Begin installation"
  555. ;
  556. ;   First, check whether the same version of the software exists
  557. ;
  558.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  559.  
  560.     Ifstr $(KeyProduct) != $(KeyNull)
  561.         ;
  562.         ; Same version already existed in the local machine
  563.         ; Popup the dialog and ask the user whether he wants to continue
  564.         ;
  565.         CloseRegKey $(KeyProduct)
  566.  
  567.         Shell $(UtilityInf), VerExistedDlg, $(ProductNWFSTitle),+
  568.             $(ProductVersion)
  569.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  570.             Debug-Output "OEMNPRNW.INF: ShellCode error: cannot get an error string."
  571.             goto ShellCodeError
  572.         endif
  573.  
  574.         goto end
  575.     endif
  576.  
  577.     Ifstr(i) $(DoCopy) == "YES"
  578.        ;
  579.        ;  Get source location
  580.        ;
  581.        Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  582.  
  583.        Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  584.            Goto ShellCodeError
  585.        Else-Ifstr(i) $($R0) == STATUS_FAILED
  586.            Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  587.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  588.                goto ShellCodeError
  589.            endif
  590.            set Error = $($R0)
  591.            Goto fatal
  592.        Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  593.            Goto successful
  594.        Endif
  595.  
  596.        Set SrcDir = $($R1)
  597.     Endif
  598.  
  599.     ;
  600.     ;  Install all the files now so we don't have to undo
  601.     ;  any Regsitry modification if copy fails
  602.     ;
  603.     set DoCopyMup = 0
  604.     set FileToCheck = $(!STF_WINDOWSSYSPATH)"\drivers\mup.sys"
  605.     install "Install-CheckFileExists"
  606.     ifstr(i) $(STATUS) != "YES"
  607.         set DoCopyMup = 1
  608.     Endif
  609.  
  610.     install "Install-Netware-Dir"
  611.     install "Install-Option"
  612.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  613.        Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  614.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  615.            goto ShellCodeError
  616.        endif
  617.        set Error = $($R0)
  618.        goto fatal
  619.     endif
  620.  
  621.     set OEM_ABANDON_ON  = TRUE
  622.  
  623.     Debug-Output "Check for prealpha redirector."
  624.  
  625.     set TempName = *($(PreAlphaList), 1)
  626.     Debug-Output "PreAlphaList[1] = "$(TempName)
  627.     set TempNamePath = $(!NTN_ServiceBase)"\"$(TempName)
  628.     Debug-Output "Path = "$(TempNamePath)
  629.     OpenRegKey $(!REG_H_LOCAL) "" $(TempNamePath) $(MAXIMUM_ALLOWED) KeyTemp
  630.     Ifstr(i) $(KeyTemp) != ""
  631.         Debug-Output "Found prealpha redirector."
  632.         CloseRegKey $(KeyTemp)
  633.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
  634.     Ifstr(i) $(KeyServices) == ""
  635.         Debug-Output "Remove PreAlpha, can't open services key"
  636.     Else
  637.         ForListDo $(PreAlphaList)
  638.             DeleteRegTree $(KeyServices) $($)
  639.         EndForListDo
  640.         CloseRegKey $(KeyServices)
  641.     Endif
  642.     Endif
  643.     Debug-Output "OEMNPRNW.INF: Install services"
  644.  
  645.     ;
  646.     ;  Install all enabled services mentioned in the ServiceNameList
  647.     ;
  648.  
  649.     ForListDo  $(ServiceNameList)
  650.        Set SvcOpt = $($)
  651.        ; Check to see if the product to be installed is already installed
  652.        ;
  653.        Set TempProductKeyName = $(!NTN_ServiceBase)"\"$(Product$(SvcOpt)Name)
  654.        OpenRegKey $(!REG_H_LOCAL) "" $(TempProductKeyName) $(MAXIMUM_ALLOWED) TempKey
  655.        ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  656.            Debug-Output "OMENPRNW.INF: "$(SvcOpt)" is already installed"
  657.        CloseRegKey $(TempKey)
  658.        Set Do$(SvcOpt) = FALSE
  659.        Endif
  660.  
  661.        Ifstr(i) $(Do$(SvcOpt)) == TRUE
  662.            Ifstr(i) $(Product$(SvcOpt)Control) == component
  663.                Debug-Output "OEMNPRNW.INF: install component: "$(SvcOpt)
  664.                Shell $(UtilityInf), AddSoftwareComponent +
  665.                     $(Manufacturer), +
  666.                     $(Product$(SvcOpt)Name), +
  667.                     $(Product$(SvcOpt)Name), +
  668.                     $(Product$(SvcOpt)DisplayName), +
  669.                     $(STF_CONTEXTINFNAME), +
  670.                     $(Product$(SvcOpt)ImagePath), +
  671.                     $(Product$(SvcOpt)SvcType), +
  672.                     $(Product$(SvcOpt)Group), +
  673.                     $(Product$(SvcOpt)DependList), "" +
  674.                     $(Product$(SvcOpt)EventFile), "", "", 1
  675.  
  676.                Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  677.                    Debug-Output "OEMNPRNW.INF: AddSoftwareComponent ShellCode error "$($ShellCode)" installing "$(SvcOpt)
  678.                    goto ShellCodeError
  679.                Endif
  680.  
  681.                Set RegistryErrorIndex = $($R0)
  682.  
  683.                Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  684.                     EndWait
  685.                     CloseRegKey $($R1)
  686.                     CloseRegKey $($R2)
  687.                     CloseRegKey $($R3)
  688.                     Debug-Output "OEMNPRNW.INF: Registry error "$(RegistryErrorIndex)" installing "$(SvcOpt)
  689.                     goto fatalregistry
  690.                Endif
  691.  
  692.                Set SvcVersion  = $($R1)
  693.                Set SvcNetRules = $($R2)
  694.                Set SvcSvcKey   = $($R3)
  695.                Set SvcParamKey = $($R4)
  696.                Set SvcLinkKey  = $($R5)
  697.  
  698.                Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)SoftType)},+
  699.                                   {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  700.                                   {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  701.                                   {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Title)},+
  702.                                   {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Description)},+
  703.                                   {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Name)},+
  704.                                   {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  705.  
  706.                Shell  $(UtilityInf), AddValueList, $(SvcVersion), $(NewValueList)
  707.                Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  708.                    Debug-Output "OEMNSVWK.INF: ShellCode error: AddValueList for version info for "$(SvcOpt)
  709.                    goto ShellCodeError
  710.                Endif
  711.  
  712.                ;
  713.            ;  Add the NetRules info
  714.            ;
  715.                Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareType)},+
  716.                                   {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareClass)}, +
  717.                                   {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareBindable)}, +
  718.                                   {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareUse)}, +
  719.                                   {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareBindForm)}, +
  720.                                   {InfOption,$(NoTitle),$(!REG_VT_SZ),$(SvcOpt)}}
  721.  
  722.                Shell  $(UtilityInf), AddValueList, $(SvcNetRules), $(NewValueList)
  723.                Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  724.                    Debug-Output "OEMNPRMW.INF: AddValueList ShellCode error = "$($ShellCode)
  725.                    Goto ShellCodeError
  726.                Endif
  727.                Set RegistryErrorIndex = $($R0)
  728.  
  729.                Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  730.                     EndWait
  731.                     CloseRegKey $(SvcSvcKey)
  732.                     CloseRegKey $(SvcParamKey)
  733.                     CloseRegKey $(SvcLinkKey)
  734.                     CloseRegKey $(SvcVersion)
  735.                     CloseRegKey $(SvcNetRules)
  736.                     Debug-Output "OEMNPRNW.INF: Registry error adding NetRules to "$(SvcOpt)
  737.                     goto fatalregistry
  738.                Endif
  739.  
  740.            Else
  741.                Debug-Output "OEMNPRNW.INF: install service: "$(SvcOpt)
  742.  
  743.                Shell $(UtilityInf), CreateService, +
  744.                     $(Product$(SvcOpt)Name), +
  745.                     $(Product$(SvcOpt)DisplayName), +
  746.                     $(Product$(SvcOpt)ImagePath), +
  747.                     $(Product$(SvcOpt)SvcType), +
  748.                     $(Product$(SvcOpt)Group), +
  749.                     $(Product$(SvcOpt)DependList), "" +
  750.                     $(Product$(SvcOpt)EventFile), "", "", 1
  751.  
  752.                Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  753.                    Debug-Output "OEMNPRNW.INF: ShellCode error installing "$(SvcOpt)
  754.                    goto ShellCodeError
  755.                Endif
  756.  
  757.                Set RegistryErrorIndex = $($R0)
  758.  
  759.                Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  760.                     EndWait
  761.                     CloseRegKey $($R1)
  762.                     CloseRegKey $($R2)
  763.                     CloseRegKey $($R3)
  764.                     Debug-Output "OEMNPRNW.INF: Registry error installing "$(SvcOpt)
  765.                     goto fatalregistry
  766.                Endif
  767.  
  768.                Set SvcVersion  = ""
  769.                Set SvcNetRules = ""
  770.                Set SvcSvcKey   = $($R1)
  771.                Set SvcParamKey = $($R2)
  772.                Set SvcLinkKey  = $($R3)
  773.             Endif
  774.             ;
  775.             ;  Call the service-specific installation section
  776.             ;
  777.             Shell "" FinishInstalling-$(SvcOpt) +
  778.                $(SvcSvcKey) $(SvcParamKey) $(SvcLinkKey) +
  779.            $(SvcVersion) $(SvcNetRules)
  780.  
  781.             Ifstr(i) $(SvcVersion) != ""
  782.                 CloseRegKey $(SvcVersion)
  783.             Endif
  784.             Ifstr(i) $(SvcNetRules) != ""
  785.                 CloseRegKey $(SvcNetRules)
  786.             Endif
  787.  
  788.             CloseRegKey $(SvcSvcKey)
  789.             CloseRegKey $(SvcParamKey)
  790.             CloseRegKey $(SvcLinkKey)
  791.             ;
  792.             ;  Add this service to the list of "undoable" things in case of failure
  793.             ;
  794.             Set OEM_ABANDON_SERVICES = >($(OEM_ABANDON_SERVICES), $(Product$(SvcOpt)Name))
  795.        Endif
  796.     EndForListDo
  797.  
  798. addextendedfunctions = +
  799.  
  800.     Debug-Output "OEMNPRNW.INF: Install extended functions"
  801.  
  802.     ForListDo $(ExtendedFunctionList)
  803.         Debug-Output "OEMNPRNW.INF: extended function: "$($)
  804.         Shell "" InstallEx-$($)
  805.     EndForListDo
  806.  
  807.     EndWait
  808.  
  809.     goto successful
  810.  
  811. ;-----------------------------------------------
  812. ; Configure Browser section
  813. ;-----------------------------------------------
  814. configurenetware = +
  815.     Debug-Output "OEMNPRNW.INF: Configure netware"
  816.     set CommonStatus = STATUS_USERCANCEL
  817.     goto successful
  818.  
  819. ;-----------------------------------------------
  820. ; Binding section
  821. ;-----------------------------------------------
  822. bindnetware =+
  823.     Debug-Output "OEMNPRNW.INF: Bind netware"
  824.     set Error = "Binding: Sorry, not yet implemented."
  825.     goto fatal
  826.  
  827. ;-----------------------------------------------
  828. ; Removenetware section
  829. ;-----------------------------------------------
  830. removenetware = +
  831.  
  832.     Debug-Output "OEMNPRNW.INF: Remove netware"
  833.  
  834.     StartWait
  835.  
  836.     ;
  837.     ; Remove all components mentioned in OEM_ABANDON_COMPONENTS
  838.     ;
  839.     ForListDo $(OEM_ABANDON_COMPONENTS)
  840.         Set Component = $($)
  841.         ;
  842.         ;  Do any component-specific cleanup before removing it
  843.         ;
  844.         Shell "" FinishRemoving-$(Component)
  845.     Debug-Output "FinishRemoving-"$(Component)
  846.  
  847.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  848.            $(Product$(Component)Name)
  849.  
  850.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  851.            Debug-Output "OEMNPRNW.INF: ShellCode error removing: "$(Component)
  852.            goto ShellCodeError
  853.         endif
  854.  
  855.         set RegistryErrorIndex = $($R0)
  856.  
  857.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  858.            Debug-Output "OEMNPRNW.INF: failure removing: "$(Component)", error "$(RegistryErrorIndex)
  859.            goto fatalregistry
  860.         Endif
  861.  
  862. ; Changed to following line to the EndForListDo TWM
  863. ;    Endif
  864.      EndForListDo
  865.  
  866.     ;
  867.     ; Remove all services mentioned in OEM_ABANDON_SERVICES
  868.     ;
  869.     ForListDo $(OEM_ABANDON_SERVICES)
  870.        Set SvcOpt = $($)
  871.        ;
  872.        ;  Do any service-specific cleanup before deleting the service
  873.        ;
  874.        Shell "" FinishRemoving-$(SvcOpt)
  875.  
  876.        Shell $(UtilityInf), RemoveService, $(Product$(SvcOpt)Name), "YES"
  877.        Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  878.            Debug-Output "OEMNPRNW.INF: ShellCode error removing: "$(Component)
  879.            goto ShellCodeError
  880.        Endif
  881.  
  882.        Set RegistryErrorIndex = $($R0)
  883.  
  884.        Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  885.            Debug-Output "OEMNPRNW.INF: failure removing: "$(Component)", error "$(RegistryErrorIndex)
  886.            goto fatalregistry
  887.        Endif
  888.     EndForListDo
  889.  
  890.     ForListDo $(ExtendedFunctionList)
  891.         Debug-Output "OEMNPRNW.INF: removing extended function: "$($)
  892.         Shell "" RemoveEx-$($)
  893.     EndForListDo
  894.  
  895.     EndWait
  896.  
  897.     goto end
  898.  
  899. ;-----------------------------------------------
  900. ; Upgrade Software section
  901. ;-----------------------------------------------
  902.  
  903. upgradenetware = +
  904.  
  905.     Debug-Output "OEMNPRNW.INF: Upgrade netware"
  906.  
  907.     ;
  908.     ; First determine whether we want to do upgrade or update for software
  909.     ; or hardware component. Then we will determine whether the Mode is
  910.     ; update or upgrade.
  911.     ;
  912.     ; If the same version of the product existed in the registry, we do
  913.     ; update. Otherwise, we will do a upgrade
  914.     ;
  915.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  916.         ; Upgrade software component
  917.         ;
  918.         ; see whether the same version exist or not
  919.         ;
  920.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  921.  
  922.         Ifstr $(KeyProduct) != $(KeyNull)
  923.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  924.             set Version = *($(VersionInfo), 4)
  925.  
  926.             ;
  927.             ; Update the binaries
  928.             ;
  929.             Shell "", GetInfFileNameFromRegistry, $(KeyProduct)
  930.  
  931.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  932.                 Debug-Output "ShellCode error"
  933.         set TWM_ShellErrorTitle = "GetInfFileNameFromRegistry"
  934.                 goto ShellCodeError
  935.             endif
  936.  
  937.             set !UG_Filename = $($R0)
  938.  
  939.             ifstr(i) $(!UG_Filename) != ""
  940.                 install "Install-Update"
  941.                 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  942.                     goto fatal
  943.                 endif
  944.             endif
  945.  
  946.             ; Upgrade the version number
  947.             ;
  948.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  949.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  950.  
  951.             ;
  952.             ; do nothing for update
  953.             ;
  954.             ifint $(Version) != $(ProductVersion)
  955.                ;
  956.                ; If the major version number is not the same,
  957.                ; it is major upgrade. So let Upgrade the product
  958.                ;
  959.                ;
  960.                ; make other upgrade change if necessary
  961.                ;
  962.             endif
  963.             CloseRegKey $(KeyProduct)
  964.         else
  965.             ;
  966.             ; Cannot Open software key, goto ERROR
  967.             ;
  968.             goto fatalregistry
  969.         endif
  970.     endif
  971.  
  972.     goto end
  973.     ;
  974.     ; End of Upgrade Software
  975.     ;
  976.  
  977. ;
  978. ;  Escape hatches
  979. ;
  980. successful = +
  981.     goto end
  982.  
  983. ;
  984. ; warning display
  985. ;
  986. warning = +
  987.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  988.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  989.         goto ShellCodeError
  990.     endif
  991.     ifstr(i) $($R1) == "OK"
  992.         goto $(to)
  993.     else-ifstr(i) $($R1) == "CANCEL"
  994.         goto $(from)
  995.     else
  996. ;       Debug-Msg "Error Error Bad DLGEVENT"
  997.         goto end
  998.     endif
  999.  
  1000.  
  1001. ;
  1002. ; non fatal error display
  1003. ;
  1004. nonfatalinfo = +
  1005.     Set CommonStatus = STATUS_USERCANCEL
  1006.     Set Severity = STATUS
  1007.     goto nonfatalmsg
  1008. nonfatal = +
  1009.     Set Severity = NONFATAL
  1010.     goto nonfatalmsg
  1011. nonfatalmsg = +
  1012.     ifstr(i) $(Error) == ""
  1013.         Set Severity = NONFATAL
  1014.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1015.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1016.             goto ShellCodeError
  1017.         endif
  1018.         set Error = $($R0)
  1019.     endif
  1020.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1021.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1022.         goto ShellCodeError
  1023.     endif
  1024.     ifstr(i) $($R1) == "OK"
  1025.         goto $(from)
  1026.     else
  1027.         goto "end"
  1028.     endif
  1029.  
  1030. ;
  1031. ;  Registry is broken
  1032. ;
  1033. fatalregistry = +
  1034.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1035.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1036.         goto ShellCodeError
  1037.     endif
  1038.     set Error = $($R0)
  1039.     goto fatal
  1040. ;
  1041. ; fatal error display
  1042. ;
  1043. fatal = +
  1044.     ifstr(i) $(Error) == ""
  1045.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1046.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1047.             goto ShellCodeError
  1048.         endif
  1049.         set Error = $($R0)
  1050.     endif
  1051.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1052.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1053.         goto ShellCodeError
  1054.     endif
  1055.  
  1056.     goto setfailed
  1057.  
  1058. ;
  1059. ;  Shelling error
  1060. ;
  1061. ShellCodeError = +
  1062.     set DlgType      = "MessageBox"
  1063.     set STF_MB_TITLE = "Error: "$(FunctionTitle)
  1064.     set STF_MB_TEXT  = "Shell Code Error "$(TWM_ShellErrorTitle)
  1065.     set STF_MB_TYPE  = 1
  1066.     set STF_MB_ICON  = 3
  1067.     set STF_MB_DEF   = 1
  1068.     ui start "Error Message"
  1069.     goto setfailed
  1070.  
  1071. setfailed = +
  1072.     set CommonStatus = STATUS_FAILED
  1073.     ;
  1074.     ; If OEM_ABANDON_ON, we need to clean up the registry
  1075.     ;
  1076.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1077.         set OEM_ABANDON_ON = FALSE
  1078.         goto removenetware
  1079.     endif
  1080.     goto end
  1081.  
  1082. end = +
  1083.     goto term
  1084.  
  1085. term = +
  1086.  
  1087.     Return $(CommonStatus)
  1088.  
  1089. ;
  1090. ;  Subroutines
  1091. ;
  1092.  
  1093.  
  1094. ;*************************************************************************
  1095. ;
  1096. ;     SECTION:   GetInfFileNameFromRegistry
  1097. ;
  1098. ;     PURPOSE:   get the inf file name from the product' NetRules section.
  1099. ;
  1100. ;   ARGUMENTS:   $0     product key handle
  1101. ;                       (ie, system\software\Microsoft\Lance\CurrentVersion)
  1102. ;
  1103. ;     RETURNS:   $R0    Inf file name.
  1104. ;
  1105. ;  REFERENCES:   Nothing
  1106. ;
  1107. ;    MODIFIES:   Nothing
  1108. ;
  1109. ;
  1110. ;*************************************************************************
  1111.  
  1112. [GetInfFileNameFromRegistry]
  1113.     read-syms InitBaseVars
  1114.     set KeyProduct = $($0)
  1115.     set InfName = ""
  1116.  
  1117.     OpenRegKey $(KeyProduct) "" "NetRules" $(!REG_KEY_READ) NetRuleKey
  1118.     Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1119.         GetRegValue $(NetRuleKey) "InfName" NetRuleInfNameList
  1120.         set NetRuleInfName = *($(NetRuleInfNameList), 4)
  1121.         Split-String $(NetRuleInfName), "\", FilenameList
  1122.         QueryListSize ListSize $(FilenameList)
  1123.         set InfName = *($(FilenameList), $(ListSize))
  1124.         CloseRegKey $(KeyProduct)
  1125.     endif
  1126.  
  1127.     return $(InfName)
  1128.  
  1129. ;
  1130. ;  Helper sections:  service-specific installation and removal functions
  1131. ;
  1132.  
  1133. [InstallEx-AuthenticationPackage]
  1134.     Read-syms GeneralConstants
  1135.     Read-syms ExtendedConstants
  1136.     Set ValueName = "Authentication Packages"
  1137.  
  1138.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\Lsa" $(MAXIMUM_ALLOWED) KeyLsa
  1139.  
  1140.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1141.         Debug-Output "OEMNPRNW.INF: Cant open LSA key for authentication package"
  1142.         Goto IEX_Auth_Return
  1143.     Endif
  1144.  
  1145.     GetRegValue $(KeyLsa) $(ValueName) AuthValueList
  1146.     Set AuthList = *($(AuthValueList),4)
  1147.  
  1148.     Set DoIt = 1
  1149.     ForListDo $(AuthList)
  1150.         Ifstr(i) $($) == $(PkgName)
  1151.              Set DoIt = 0
  1152.         Endif
  1153.     EndForListDo
  1154.  
  1155.     Ifint $(DoIt) == 1
  1156.         Set NewAuthList = >($(AuthList),$(PkgName))
  1157.         SetRegValue $(KeyLsa) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewAuthList)}
  1158.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1159.             Debug-Output "OEMNPRNW.INF: Cant update LSA value for authentication package"
  1160.         Endif
  1161.     Endif
  1162.  
  1163.     CloseRegKey $(KeyLsa)
  1164.  
  1165. IEX_Auth_Return = +
  1166.     Return
  1167.  
  1168. [InstallEx-NetworkProvider]
  1169.     Read-syms GeneralConstants
  1170.     Read-syms ExtendedConstants
  1171.     Set ValueName = "ProviderOrder"
  1172.  
  1173.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\NetworkProvider\order" $(MAXIMUM_ALLOWED) KeyPro
  1174.  
  1175.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1176.         Debug-Output "OEMNPRNW.INF: Cant open NetworkProvder\order key"
  1177.         Goto IEX_Prov_Return
  1178.     Endif
  1179.  
  1180.     GetRegValue $(KeyPro) $(ValueName) ProValueList
  1181.     Set ProString = *($(ProValueList),4)
  1182.     Split-string $(ProString) "," ProPieces
  1183.     Debug-Output "OEMNRPNW.INF:  Provider list string is: "$(ProPieces)
  1184.  
  1185.     Set DoIt = 1
  1186.     ForListDo $(ProPieces)
  1187.         Ifstr(i) $($) != ","
  1188.             Ifstr(i) $($) == $(ProviderName)
  1189.                  Set DoIt = 0
  1190.                  Debug-Output "OEMNRPNW.INF:  Provider already present"
  1191.             Endif
  1192.         Endif
  1193.     EndForListDo
  1194.  
  1195.     Ifint $(DoIt) == 1
  1196.         Set NewPieces = ""
  1197.         Set NewPieces = >($(NewPieces),$(ProviderName))
  1198. ;        Ifstr(i) *($(ProPieces),1) != $(KeyNull)
  1199.             Set NewPieces = >($(NewPieces),",")
  1200. ;    Endif
  1201.  
  1202.     ForListDo $(ProPieces)
  1203.             Set NewPieces = >($(NewPieces),$($))
  1204.     EndForListDo
  1205.  
  1206.         Debug-Output "OEMNRPNW.INF:  New provider list string is: "$(NewPieces)
  1207.  
  1208.         Set NewString = ""
  1209.         ForListDo $(NewPieces)
  1210.             Set NewString = $(NewString)$($)
  1211.         EndForListDo
  1212.         Debug-Output "OEMNRPNW.INF:  New provider string is: "$(NewString)
  1213.  
  1214.         SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(NewString)}
  1215.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1216.             Debug-Output "OEMNPRNW.INF: Cant update ProviderOrder value"
  1217.         Endif
  1218.     Endif
  1219.  
  1220.     CloseRegKey $(KeyPro)
  1221.  
  1222. IEX_Prov_Return = +
  1223.     Return
  1224.  
  1225. [InstallEx-ServiceGroupOrder]
  1226.     Read-syms GeneralConstants
  1227.     Read-syms ExtendedConstants
  1228.     Set ValueName = "List"
  1229.     Set Predecessor = "file system"
  1230.  
  1231.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ServiceGroupOrder" $(MAXIMUM_ALLOWED) KeySgo
  1232.  
  1233.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1234.         Debug-Output "OEMNPRNW.INF: Cant open ServiceGroupOrder key"
  1235.         Goto IEX_Sgo_Return
  1236.     Endif
  1237.  
  1238.     GetRegValue $(KeySgo) $(ValueName) SgoValue
  1239.  
  1240.     Set SgoList = *($(SgoValue),4)
  1241.     Set DoIt = 1
  1242.     Set Trigger = *($(SvcList),1)
  1243.     Set NewList = {}
  1244.  
  1245.     ForListDo $(SgoList)
  1246.         Set Item = $($)
  1247.         Ifstr(i) $(Item) == $(Trigger)
  1248.              ; We're already in the list
  1249.              Set DoIt = 0
  1250.         Endif
  1251.         Set NewList = >($(NewList),$(Item))
  1252.         Ifstr(i) $(Item) == $(Predecessor)
  1253.             ; Add all NetWare names to the list here
  1254.             ForListDo $(SvcList)
  1255.                 Set NewList = >($(NewList),$($))
  1256.             EndForListDo
  1257.         Endif
  1258.     EndForListDo
  1259.  
  1260.     Ifint $(DoIt) == 1
  1261.         SetRegValue $(KeySgo) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewList)}
  1262.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1263.             Debug-Output "OEMNPRNW.INF: Cant update ServiceGroupOrder value"
  1264.         Endif
  1265.     Endif
  1266.  
  1267.     CloseRegKey $(KeySgo)
  1268.  
  1269. IEX_Sgo_Return = +
  1270.     Return
  1271.  
  1272. ;
  1273. ; Install the Netware print provider
  1274. ;
  1275. [InstallEx-NetwarePrintServices]
  1276.     Read-syms GeneralConstants
  1277.     Read-syms ExtendedConstants
  1278.     Set ValueName = "Name"
  1279.  
  1280.     OpenRegKey $(!REG_H_LOCAL) "" $(PrintProvider) $(MAXIMUM_ALLOWED) KeyPrint
  1281.  
  1282.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1283.         Debug-Output "OEMNPRNW.INF: Cant open "$(PrintProvider)" key"
  1284.         Goto IEX_Nps_Return
  1285.     Endif
  1286.  
  1287.     CreateRegKey $(KeyPrint) {$(NetwarePrintProviderName),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyProvider
  1288.     Ifint $(RegLastError) != !(!REG_ERROR_SUCCESS)
  1289.         Debug-Output "OEMNPRNW.INF: NetWare Print Services already install."
  1290.     OpenRegKey $(KeyPrint) "" $(NetwarePrintProviderName) $(MAXIMUM_ALLOWED) KeyProvider
  1291.     Endif
  1292.  
  1293.  
  1294.     SetRegValue $(KeyProvider) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),"nwspool.dll"}
  1295.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1296.         Debug-Output "OEMNPRNW.INF: Can't update Netware Print Services value"
  1297.     Endif
  1298.  
  1299.     CloseRegKey $(KeyProvider)
  1300.  
  1301. IEX_Nps_Return = +
  1302.     Return
  1303.  
  1304. [RemoveEx-NetwarePrintServices]
  1305.     Read-syms GeneralConstants
  1306.     Read-syms ExtendedConstants
  1307.  
  1308.     OpenRegKey $(!REG_H_LOCAL) "" $(PrintProvider) $(MAXIMUM_ALLOWED) KeyPrint
  1309.     DeleteRegTree $(KeyPrint) $(NetwarePrintProviderName)
  1310.     FlushRegKey $(KeyPrint)
  1311.  
  1312.     CloseRegKey $(KeyPrint)
  1313.  
  1314. REX_Nps_Return = +
  1315.     Return
  1316.  
  1317. ;
  1318. ; Remove extended functions
  1319. ;
  1320. [RemoveEx-AuthenticationPackage]
  1321.     Read-syms GeneralConstants
  1322.     Read-syms ExtendedConstants
  1323.     Set ValueName = "Authentication Packages"
  1324.  
  1325.     Debug-Output "OEMNRPNW.INF: RemoveEx-AuthenticationPackage"
  1326.  
  1327.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\Lsa" $(MAXIMUM_ALLOWED) KeyLsa
  1328.  
  1329.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1330.         Debug-Output "OEMNPRNW.INF: Cant open LSA key for authentication package"
  1331.         Goto REX_Auth_Return
  1332.     Endif
  1333.  
  1334.     GetRegValue $(KeyLsa) $(ValueName) AuthValueList
  1335.     Set AuthList = *($(AuthValueList),4)
  1336.  
  1337.     Set DoIt = 0
  1338.     Set NewAuthList = {}
  1339.  
  1340.     ForListDo $(AuthList)
  1341.         Ifstr(i) $($) == $(PkgName)
  1342.              Set DoIt = 1
  1343.         Else
  1344.              Set NewAuthList = >($(NewAuthList),$($))
  1345.         Endif
  1346.     EndForListDo
  1347.  
  1348.     Ifint $(DoIt) == 1
  1349.         SetRegValue $(KeyLsa) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewAuthList)}
  1350.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1351.             Debug-Output "OEMNPRNW.INF: Cant update LSA value for authentication package"
  1352.         Endif
  1353.     Endif
  1354.  
  1355.     CloseRegKey $(KeyLsa)
  1356.  
  1357. REX_Auth_Return = +
  1358.     Return
  1359.  
  1360. [RemoveEx-NetworkProvider]
  1361.     Read-syms GeneralConstants
  1362.     Read-syms ExtendedConstants
  1363.     Set ValueName = "ProviderOrder"
  1364.  
  1365.     Debug-Output "OEMNRPNW.INF: RemoveEx-NetworkProvider"
  1366.  
  1367.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\NetworkProvider\order" $(MAXIMUM_ALLOWED) KeyPro
  1368.  
  1369.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1370.         Debug-Output "OEMNPRNW.INF: Cant open NetworkProvder\order key"
  1371.         Goto REX_Prov_Return
  1372.     Endif
  1373.  
  1374.     GetRegValue $(KeyPro) $(ValueName) ProValueList
  1375.     Set ProString = *($(ProValueList),4)
  1376.     Split-string $(ProString) "," ProPieces
  1377.     Debug-Output "OEMNRPNW.INF:  Provider list string is: "$(ProPieces)
  1378.  
  1379.     Set DoIt = 0
  1380.     Set NewNames = {}
  1381.     ForListDo $(ProPieces)
  1382.         Ifstr(i) $($) != ","
  1383.            Ifstr(i) $($) == $(ProviderName)
  1384.                 Set DoIt = 1
  1385.            Else
  1386.               Set NewNames = >($(NewNames),$($))
  1387.            Endif
  1388.         Endif
  1389.     EndForListDo
  1390.  
  1391.     Ifint $(DoIt) == 1
  1392.         ;  Delimit strings with commas
  1393.         Set NewPieces = {}
  1394.         QueryListSize ElemCount $(NewNames)
  1395.         ForListDo $(NewNames)
  1396.             Set NewPieces = >($(NewPieces),$($))
  1397.             Ifint $(ElemCount) > 1
  1398.                 Set NewPieces = >($(NewPieces),",")
  1399.             Endif
  1400.             Set-sub ElemCount = $(ElemCount),1
  1401.         EndForListDo
  1402.  
  1403.         Debug-Output "OEMNRPNW.INF:  New provider list string is: "$(NewPieces)
  1404.  
  1405.         Set NewString = ""
  1406.         ForListDo $(NewPieces)
  1407.             Set NewString = $(NewString)$($)
  1408.         EndForListDo
  1409.         Debug-Output "OEMNRPNW.INF:  New provider string is: "$(NewString)
  1410.  
  1411.         SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(NewString)}
  1412.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1413.             Debug-Output "OEMNPRNW.INF: Cant update ProviderOrder value"
  1414.         Endif
  1415.     Endif
  1416.  
  1417.     CloseRegKey $(KeyPro)
  1418.  
  1419. REX_Prov_Return = +
  1420.     Return
  1421.  
  1422. [RemoveEx-ServiceGroupOrder]
  1423.     Read-syms GeneralConstants
  1424.     Read-syms ExtendedConstants
  1425.     Set ValueName = "List"
  1426.  
  1427.     Debug-Output "OEMNRPNW.INF: RemoveEx-ServiceGroupOrder"
  1428.  
  1429.     OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ServiceGroupOrder" $(MAXIMUM_ALLOWED) KeySgo
  1430.  
  1431.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1432.         Debug-Output "OEMNPRNW.INF: Cant open ServiceGroupOrder key"
  1433.         Goto REX_Sgo_Return
  1434.     Endif
  1435.  
  1436.     GetRegValue $(KeySgo) $(ValueName) SgoValue
  1437.  
  1438.     Set SgoList = *($(SgoValue),4)
  1439.     Set DoIt = 0
  1440.     Set NewList = {}
  1441.  
  1442.     ForListDo $(SgoList)
  1443.         Set Item = $($)
  1444.         IfContains(i) $(Item) in $(SvcList)
  1445.              ; We're already in the list
  1446.              Set DoIt = 1
  1447.         Else
  1448.              Set NewList = >($(NewList),$(Item))
  1449.         Endif
  1450.     EndForListDo
  1451.  
  1452.     Ifint $(DoIt) == 1
  1453.         SetRegValue $(KeySgo) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewList)}
  1454.         Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1455.             Debug-Output "OEMNPRNW.INF: Cant update ServiceGroupOrder value"
  1456.         Endif
  1457.     Endif
  1458.  
  1459.     CloseRegKey $(KeySgo)
  1460.  
  1461. REX_Sgo_Return = +
  1462.     Return
  1463.  
  1464. ;
  1465. ;  FinishInstalling-OPTION: each section is called with:
  1466. ;
  1467. ;    $0: Service key handle
  1468. ;    $1: Parameters key handle
  1469. ;    $2: Linkage key handle
  1470. ;
  1471. ;
  1472. [FinishInstalling-NWFS]
  1473.     set WorkStationHandle = $($0)
  1474.     read-syms GeneralConstants
  1475.     Set KeyLinkage = $($2)
  1476.  
  1477. ; Check for the pre-alpha nwfs key if it exists delete it we are now using
  1478. ; the key NetwareWorkStation
  1479. ;
  1480.     set NetwareFileSystem = "Nwfs"
  1481.     set PreAlphaWorkstation = $(!NTN_ServiceBase)"\"$(NetwareFileSystem)
  1482.  
  1483.     OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaWorkstation) $(MAXIMUM_ALLOWED) KeyWorkstation
  1484.     Ifstr(i) $(KeyWorkstation) != ""
  1485.         CloseRegKey $(KeyWorkstation)
  1486.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
  1487.     Ifstr(i) $(KeyServices) == ""
  1488.         Debug-Output "OEMNPRNW.INF: Delete Nwfs, Can't open "$(!NTN_ServiceBase)
  1489.     Else
  1490.             DeleteRegTree $(KeyServices) $(NetwareFileSystem)
  1491.         CloseRegKey $(KeyServices)
  1492.     Endif
  1493.     Endif
  1494.  
  1495.  
  1496.     SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"Mup"}}
  1497.  
  1498.     CreateRegKey $(WorkStationHandle) {"NetworkProvider",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" ProviderHandle
  1499.     Ifstr(i) $(ProviderHandle) == ""
  1500.         Debug-Output "OEMNPRNW.INF: Can't create NetwareWorkstation\NetworkProvider"
  1501.         OpenRegValue $(WorkStationHandle) "" "NetworkProvider" $(MAXIMUM_ALLOWED) ProviderHandle
  1502.     Ifstr(i) $(ProviderHandle) == ""
  1503.             goto FIN_NWWS_Return
  1504.     Endif
  1505.     Endif
  1506.  
  1507.     SetRegValue $(ProviderHandle) {"Class",$(NoTitle),$(!REG_VT_DWORD),"3"}
  1508.     SetRegValue $(ProviderHandle) {"Name",$(NoTitle),$(!REG_VT_SZ),"Netware Services"}
  1509.     SetRegValue $(ProviderHandle) {"ProviderPath",$(NoTitle),$(!REG_VT_SZ),"NETWARE.DLL"}
  1510.     SetRegValue $(ProviderHandle) {"DeviceName",$(NoTitle),$(!REG_VT_SZ),"\Device\NetWareWorkstation"}
  1511.  
  1512.     CloseRegKey $(ProviderHandle)
  1513.  
  1514. FIN_NWWS_Return = +
  1515.     Return
  1516.  
  1517. [FinishInstalling-IPXSPXII]
  1518.     read-syms GeneralConstants
  1519.     read-syms IpxSpxIIConstants
  1520.  
  1521.     set ParmKey = $($1)
  1522.     set LinkageKey = $($2)
  1523.  
  1524.     ;  set Parameters
  1525.  
  1526.     SetRegValue $(ParmKey) {$(FrameTypeName),$(NoTitle),$(!REG_VT_SZ),$(FrameType)}
  1527.     SetRegValue $(ParmKey) {$(CardTypeName),$(NoTitle),$(!REG_VT_SZ),$(CardName)}
  1528.     SetRegValue $(ParmKey) {$(CardInstance),$(NoTitle),$(!REG_VT_DWORD),$(CardInstanceNum)}
  1529.     SetRegValue $(ParmKey) {"ConnectTimeout",$(NoTitle),$(!REG_VT_DWORD),0}
  1530.     SetRegValue $(ParmKey) {"RetryCount",$(NoTitle),$(!REG_VT_DWORD),10}
  1531.     SetRegValue $(ParmKey) {"RetryDelayDelta",$(NoTitle),$(!REG_VT_DWORD),5}
  1532.     SetRegValue $(ParmKey) {"RetryDelayTimeout",$(NoTitle),$(!REG_VT_DWORD),0}
  1533.     SetRegValue $(ParmKey) {"SessionCount",$(NoTitle),$(!REG_VT_DWORD),16}
  1534.     SetRegValue $(ParmKey) {"WatchdogTimeout",$(NoTitle),$(!REG_VT_DWORD),0x3c}
  1535.     SetRegValue $(ParmKey) {"WindowSize",$(NoTitle),$(!REG_VT_DWORD),8}
  1536.  
  1537.     ; set Linkage
  1538.  
  1539.     SetRegValue $(LinkageKey) {$(BindValueName),$(NoTitle),$(!REG_VT_SZ),"\DEVICE\IPXSPXII"}
  1540.  
  1541. ; Check for the pre-alpha Ipx service key if it exists delete it.  We are now
  1542. ; using the key IpxSpxII
  1543. ;
  1544.     set PreAlphaIpxName    = "Ipx"
  1545.     set PreAlphaIpxService = $(!NTN_ServiceBase)"\"$(PreAlphaIpxName)
  1546.  
  1547.     OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaIpxService) $(MAXIMUM_ALLOWED) KeyIpx
  1548.     Ifstr(i) $(KeyIpx) != ""
  1549.         CloseRegKey $(KeyIpx)
  1550.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
  1551.     Ifstr(i) $(KeyServices) == ""
  1552.         Debug-Output "OEMNPRNW.INF: Delete Ipx, Can't open "$(!NTN_ServiceBase)
  1553.     Else
  1554.             DeleteRegTree $(KeyServices) $(PreAlphaIpxName)
  1555.         FlushRegKey $(KeyServices)
  1556.         CloseRegKey $(KeyServices)
  1557.     Endif
  1558.     Endif
  1559.  
  1560.     Return
  1561.  
  1562.  
  1563. [FinishInstalling-LSL]
  1564.     Return
  1565.  
  1566.  
  1567. [FinishInstalling-RESMGR]
  1568.     Return
  1569.  
  1570.  
  1571. [FinishInstalling-ODILOAD]
  1572.     Set KeyLinkage = $($2)
  1573.  
  1574.     SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"+ODI"}}
  1575.  
  1576.     Return
  1577.  
  1578.  
  1579. [FinishInstalling-MUP]
  1580.     Return
  1581.  
  1582.  
  1583. [FinishInstalling-TDI]
  1584.     Return
  1585.  
  1586.  
  1587. [FinishRemoving-NWFS]
  1588.     Debug-Output "FinishRemoving-NWFS"
  1589.     Return
  1590.  
  1591.  
  1592. [FinishRemoving-IPXSPXII]
  1593.     Debug-Output "FinishRemoving-IPXSPXII"
  1594.     Return
  1595.  
  1596.  
  1597. [FinishRemoving-LSL]
  1598.     Debug-Output "FinishRemoving-LSL"
  1599.     Return
  1600.  
  1601.  
  1602. [FinishRemoving-RESMGR]
  1603.     Debug-Output "FinishRemoving-RESMGR"
  1604.     Return
  1605.  
  1606.  
  1607. [FinishRemoving-ODILOAD]
  1608.     Debug-Output "FinishRemoving-ODILOAD"
  1609.     Return
  1610.  
  1611.  
  1612. [FinishRemoving-MUP]
  1613.     Debug-Output "FinishRemoving-Mup"
  1614.     Return
  1615.  
  1616.  
  1617. [FinishRemoving-TDI]
  1618.     Debug-Output "FinishRemoving-TDI"
  1619.     Return
  1620.  
  1621.  
  1622. ;***************************************************************
  1623. ;  INSTALL SECTIONS
  1624. ;***************************************************************
  1625. [Install-Option]
  1626.     set STF_VITAL = ""
  1627.  
  1628.     Debug-Output "OEMNPRNW.INF: Install-Option: AddCopy = "$(AddCopy)
  1629.     Debug-Output "OEMNPRNW.INF: Install-Option: DoCopy  = "$(DoCopy)
  1630.  
  1631.     Ifstr(i) $(AddCopy) == "YES"
  1632.         ;
  1633.         ; Add the files to the copy list
  1634.         ;
  1635.         AddSectionFilesToCopyList Files-Netware    $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
  1636.     AddSectionFilesToCopyList Files-Lan        $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
  1637.         AddSectionFilesToCopyList Files-System32   $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1638.         AddSectionFilesToCopyList Files-Inf-Extra  $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1639.         Ifint $(DoCopyMup) == 1
  1640.            AddSectionFilesToCopyList Files-Mup     $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1641.         Endif
  1642.     Endif
  1643.  
  1644.     Ifstr(i) $(DoCopy) == "YES"
  1645.        ;
  1646.        ; Copy files in the copy list
  1647.        ;
  1648.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1649.        CopyFilesInCopyList
  1650.     Endif
  1651.  
  1652.     Exit
  1653.  
  1654. [Install-Netware-Dir]
  1655.    CreateDir $(!STF_WINDOWSSYSPATH)\Netware
  1656.    Exit
  1657.  
  1658. [Install-Update]
  1659.    set STF_VITAL        = ""
  1660.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1661.  
  1662.    Debug-Output "OEMNPRNW.INF: Install-Update: AddCopy = "$(AddCopy)
  1663.    Debug-Output "OEMNPRNW.INF: Install-Update: DoCopy  = "$(DoCOpy)
  1664.  
  1665.    AddSectionFilesToCopyList Files-Netware    $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
  1666.    AddSectionFilesToCopyList Files-Lan        $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
  1667.    AddSectionFilesToCopyList Files-System32   $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1668.    AddSectionFilesToCopyList Files-Inf-Extra  $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1669.    AddSectionFilesToCopyList Files-Inf        $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1670.  
  1671.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1672.    CopyFilesInCopyList
  1673.  
  1674.    Exit
  1675.  
  1676. [Install-CheckFileExists]
  1677.    Debug-Output "FiletoCheck = "$(FileToCheck)
  1678.    LibraryProcedure STATUS,$(!LIBHANDLE), CheckFileExistance $(FileToCheck)
  1679.    Debug-Output "CheckFileExists STATUS = "$(STATUS)
  1680.    exit
  1681.  
  1682.  
  1683.  
  1684. [Source Media Descriptions]
  1685.     1  = "NetWare for Windows NT Setup Disk"  , TAGFILE = nwfs.sys
  1686.     2  = "NetWare for Windows NT Setup Disk"  , TAGFILE = nwfs.sys
  1687.     3  = "NetWare for Windows NT Setup Disk"  , TAGFILE = nwfs.sys
  1688.     99    = "LMHOST disk", TAGFILE = lmhosts
  1689.  
  1690. [ProductType]
  1691. STF_PRODUCT  = Winnt
  1692. STF_PLATFORM = I386
  1693.  
  1694. [Files-Inf]
  1695. 3, oemsetup.inf, SIZE=10000, RENAME=$(!UG_Filename)
  1696.  
  1697. [Files-Inf-Extra]
  1698. 3, oemnadne.inf, SIZE=10000
  1699. 3, oemnadnx.inf, SIZE=10000
  1700. 3, oemnadna.inf, SIZE=10000
  1701. 3, oemnadnb.inf, SIZE=10000
  1702. 3, oemnadnc.inf, SIZE=10000
  1703. 3, oemnadnt.inf, SIZE=10000
  1704. 3, oemnadod.inf, SIZE=10000
  1705. 3, oemnadnf.inf, SIZE=10000
  1706.  
  1707. [Files-Mup]
  1708. 3, mup.sys, SIZE=30000
  1709.  
  1710. [Files-Netware]
  1711. 3, resmgr.sys, SIZE=80000
  1712. 3, nwfs.sys, SIZE=140000
  1713. 3, ipxspxii.sys, SIZE=90000
  1714. 3, odiload.sys, SIZE=60000
  1715. 3, lsl.sys, SIZE=60000
  1716. 3, ethertsm.ntm, SIZE=10000
  1717. 3, tokentsm.ntm, SIZE=10000
  1718. 3, ndis.sys, SIZE=60000
  1719. 3, odinsup.sys, SIZE=70000
  1720.  
  1721. [Files-Lan]
  1722. 3, ne1000.lan, SIZE=10000
  1723. 3, ne2000.lan, SIZE=10000
  1724. 3, ne2.lan, SIZE=10000
  1725. 3, ne2_32.lan, SIZE=10000
  1726. 3, 3c503.lan, SIZE=10000
  1727. 3, 3c507.lan, SIZE=10000
  1728. 3, 3c509.lan, SIZE=10000
  1729. 3, token.lan, SIZE=10000
  1730. 3, ntr2000.lan, SIZE=10000
  1731.  
  1732. [Files-System32]
  1733. 3, netware.dll, SIZE=120000
  1734. 3, nwv1_0.dll, SIZE=20000
  1735. 3, nwspool.dll, SIZE=70000
  1736. 3, nwmsg.dll, SIZE=20000
  1737. 3, nwsetup.dll, SIZE=20000
  1738. 3, novell.cpl, SIZE=20000
  1739.  
  1740.  
  1741.